import { useUserInfo } from '/@/stores/userInfo';
import { judementSameArr } from '/@/utils/arrayOperation';

/**
 * 单个权限验证：通过用户的岗位判断 (特殊出处理的权限都用岗位来判断)
 * @param curPostCode 当前岗位编码
 * @returns 有权限，返回true，反之false
 */
export function authPostCode(curPostCode: string): boolean {
  const stores = useUserInfo();
  return stores.userInfos.postCode === curPostCode;
}

/**
 * 单个权限验证
 * @param value 权限值
 * @returns 有权限，返回 `true`，反之则反
 */
export function auth(value: string): boolean {
  const stores = useUserInfo();
  return stores.userInfos.authBtnList.some((v: string) => v === value);
}

/**
 * 多个权限验证，满足一个则为 true
 * @param value 权限值
 * @returns 有权限，返回 `true`，反之则反
 */
export function auths(value: Array<string>): boolean {
  let flag = false;
  const stores = useUserInfo();
  stores.userInfos.authBtnList.map((val: string) => {
    value.map((v: string) => {
      if (val === v) flag = true;
    });
  });
  return flag;
}

/**
 * 多个权限验证，全部满足则为 true
 * @param value 权限值
 * @returns 有权限，返回 `true`，反之则反
 */
export function authAll(value: Array<string>): boolean {
  const stores = useUserInfo();
  return judementSameArr(value, stores.userInfos.authBtnList);
}
